This page last changed on Jun 19, 2005 by orogers.
This page describes integration of CruiseControl.NET with Telelogic's Synergy SCM product suite, specifically CM Synergy as well as ChangeSynergy. Detection of modifications is entirely task based rather than object based, which may present problems for pre-6.3 lifecycles. Successful integration may be published through shared manual task folders and/or baselining.
CM Synergy Concepts is arguably one of the best conceptual explanations of CM Synergy. Consider it a prerequisite for implementing continuous integration with CM Synergy. Robert Smith, from the CruiseControl for Java site, deserves a great deal of credit for explaining the product better than Telelogic ever has.Certain assumptions have been made about the integration of CruiseControl.NET and CM Synergy. First, it is assumed that all projects use a task based reconfigure template, rather than an object based.
- The reconfigure template for all projects is task based, not object status based.
- Developers have there own projects with purpose "Insulated Development"
- There's no real point to continuous integration for "Collaborative Development" purpose projects, since Synergy is not a label based system.
- Build Managers test completed tasks in a project with purpose "Integration Testing" (or similar).
- We could create a baseline in the integration project to push completed tasks to the developers; however, this is less than ideal. Baselines in Synergy are expensive and were intended for milestone events like completion of a feature, or a configuration used for a QA testing round.
- The more efficient approach is to have a shared task folder that is included in each developer's reconfigure template/properties.
- Successfully integrated tasks can be manually added to this folder.
- This will push newly completed and integrated tasks to developers when they reconfigure (i.e., "update members").
<sourcecontrol type="synergy">
<connection>
<host>myserver</host>
<database>\\myserver\share\mydatabase</database>
</connection>
<project>
<release>Product/1.0</release>
<projectSpecification>Product-1</projectSpecification>
<taskFolder>1234</taskFolder>
</project>
<changeSynergy>
<url>http://myserver:8060</url>
</changeSynergy>
</sourcecontrol>
<sourcecontrol type="synergy">
<connection>
<host>myserver</host>
<database>\\myserver\share\mydatabase</database>
<delimiter>-</delimiter>
<username>%CCM_USER%</username>
<password>%CCM_PWD%</password>
<role>build_mgr</role>
<homeDirectory>D:\cmsynergy%CCM_USER%</homeDirectory>
<clientDatabaseDirectory>D:\cmsynergy\uidb</clientDatabaseDirectory>
<polling>true</polling>
<timeout>3600</timeout>
</connection>
<project>
<release>Product/1.0</release>
<projectSpecification>Product-1</projectSpecification>
<taskFolder>1234</taskFolder>
<baseline>false</baseline>
<purpose>Integration Testing</purpose>
<template>true</template>
</project>
<changeSynergy>
<role>User</role>
<url>http://myserver:8060</url>
<username>%CS_USER%</username>
<password>%CS_PWD%</password>
</changeSynergy>
</sourcecontrol>
Connection Item | Description | Type | Environmental Variable Expansion | Default |
workingDirectory | The directory to execute all CM Synergy commands from. | string | Yes | "%PROGRAMFILES%\Telelogic\CM Synergy 6.3\bin" |
executable | The executable filename/path for the CM Synergy command line interface. | string | Yes | "ccm.exe" |
host | The hostname of the Synergy server. | string | No | "localhost" |
database | The physical path to the Informix database for the Synergy database. | string | No | Required. |
username | The username for the Synergy session. | string | Yes | "%USERNAME%" |
password | The Synergy password for the associated username. | string | Yes | "" |
role | The role to use for the Synergy session. | string | No | "build_mgr" |
homeDirectory | The full physical path of the home directory for the associated username on the client machine. | string | Yes | "%SystemDrive%\cmsynergy
\%USERNAME%" |
clientDatabaseDirectory | Path for the remote client session to copy database information to. | string | Yes | "%SystemDrive%\cmsynergy\uidb" |
delimiter | The configured database delimiter for object and project specifications. | char | No | '-' |
polling | If enabled, queues commands while the server is offline. | boolean | No | false |
timeout | Timeout in seconds for all Synergy commands. | int | No | 3600 |
Project Item | Description | Type | Environmental Variable Expansion | Default |
release | The component + version specification. | string | No | Required. |
projectSpecification | The Synergy project specification for the integration project. | string | No | Required. |
taskFolder | The folder specification for the shared folder which will be used to "manually" add successfully integrated tasks added to. | int | No | 0 |
baseline | Flag to creates a new baseline of the project configuration after a successful integration. | boolean | No | false |
purpose | The Synergy purpose specification for baselines created by CruiseControl.NET. | string | No | "Integration Testing" |
Change Synergy Item | Description | Type | Environmental Variable Expansion | Default |
url | The base HTTP URL for your ChangeSynergy installation | string | No | Required. |
username | The optional username for ChangeSynergy anonymous access. | string | Yes | Optional. |
password | The optional password for ChangeSynergy anonymous access. | string | Yes | Optional. |
role | The role to use for the Synergy session. | string | No | "User" |
- Contributed by Steve Jansen
|